10章 クラス
一般にクラスはとても早い段階で教わり、後で取り上げられることはまずない。そのためか、ほとんどの開発者がクラスの目的を考えずにクラスを使いすぎる傾向にある。(10.4)
何もかもクラスにするのではなく、クラスを全く使わないのでもなく、使うべき場所で使う(中庸)
使うべき場所の鍵は「前提条件」
9章で解説したデータクラスと比較する形でクラスを解説
言葉は出していないが、データクラスのようにクラス変数を定義 (10.1)
__init__(初期化)と不変式 (10.2)
属性の公開 (10.3)
操作するメソッド (10.3)
不変式は開発者の話題に上ることが少なすぎるが、不変式を中心にものを考え出すとクラスの保守性が上がる。
不変式はクラスの利用者がオブジェクトの論理を辿れるようにして彼らの認知負荷を下げるためのものだということを忘れないようにしよう。(10.3)
10.1 クラスの解剖
データクラスと比較してクラスを導入していく
dataclassではデータクラスの中で変数を定義していたが、クラスでは__init__()の内部で変数を定義する。 (10.1.1)
クラスは、辞書やデータクラスが簡単には伝えられない重要な情報を伝える。それは不変式だ。
10.2へ
初期化__init__と不変式
初期化した後と不変式